package com.example.demo.repository;
import com.alibaba.fastjson.JSONObject;
import com.normalClasses.eye.*;
public interface AutoMessageHandler {
//处理使用者登陆时间之差
/**
 * 
 * @param cookie 传入需要处理的cookie
 * @return 返回json规格的字符串，cookie所在主体的学习时间行为提示
 */
String Auto_time_warning(String cookie);
//处理使用者当属城市的天气及暖心提示
/**
 * 
 * @param cookie 传入需要处理的cookie主体
 * @return 返回json规格的字符串，cookie所在主体的天气暖心提示
 */
String Auto_weather_warning(String cookie);
/**
 * 
 * @param cookie 传入需要处理的cookie主体
 * @return 返回json规格的字符串，cookie所在主体的地理位置的肺炎情况的提醒
 */
String Auto_feiyan_warning(String cookie);
//给用户适当的眼动操作提示
/**
 * 
 * @param cookie 传入需要处理的cookie主体
 * @return 返回json规格的字符串数组，区别于新老用户，每次执行的时候，逐渐的从新用户转变成老用户
 */
String[] Auto_operation_notice(String cookie);
//检查当前用户活跃情况,其实可以说socket里面已经有方法去检测，这个可以降低耦合性，但性能不佳，主要用于多重登陆时候的检测
/**
 * 
 * @return 当true的情况时候有用户活跃
 */
boolean Auto_check_onlinepeople();
//检查是否写入定时处理事务
/**
 * 
 * @param cookie 传入定时处理的主体的cookie
 * @return 返回布尔型，返回true代表可写入定时处理任务
 */
boolean Auto_check_scheduleTask(String cookie);
//向数据库存入数据
/**
 * 
 * @param cookie 需要存入消息对象的主体
 * @param message 需要存入的json规格的字符串
 * @param status 写入初始值，true表示从未被发送出去
 * @param order 定时任务的顺序，人为约定的固定的顺序
 * @param priority 此条消息的优先级
 * @return 存储成功将会返回true，一般来说，此函数我们将不关注返回值
 */
boolean Auto_deposit_message(String cookie,String message,String status,int order,int priority);
//读取优先级最高并且序号最小的消息
/**
 * 
 * @param cookie 传入需要拿出的cookie主体
 * @return  从数据库按照规则拿出一条json形式的字符串的消息
 */
String Auto_output_message(String cookie);
//对读过的消息进行处理
/**
 * 
 * @param message 需要处理的消息的字符串形式
 * @param cookie 需要处理此消息的承载主体cookie
 */
void Auto_handle_readmessage(String message,String cookie);
//一旦制造成功，将标记制造过定时消息
/**
 * 
 * @param cookie 消息制造器制造成功之后会为此cookie进行固定任务标记
 */
void Auto_sign_maker(String cookie);
//检索未发出的消息，将其以邮件的形式发送
/**
 * 
 * @param username 向此username账号发送未查看的消息主体
 */
void Auto_send_mail(String username);
//如果有未查看邮件并且将其发送出去了，对已经发送的消息进行销毁或强制将消息置空
/**
 * 
 * @param username 适用于特定情况，在为username发送了邮件之后，需要对username未查看的消息的状态进行修改
 */
void Auto_destroy_message(String username);
//返回数据库的用户名列表
/**
 * 
 * @return 直接返回数据库用户名的列表，以字符串数组返回
 */
String[] Auto_find_username();
//根据cookie换取username,经常要使用的一个功能，前面的接口在实现的过程中不优雅，而且sql欠优化
/**
 * 
 * @param cookie 传入需要查找的username的cookie
 * @return 返回String类型的username
 */
String Auto_getusername(String cookie);
//按顺序索引数据库里面没必要的信息将其清理
void Auto_clean_mysql();
//检查此用户是否已经选择了头像和nickname，返回值boolean
/**
 * 
 * @param cookie 传入需要查找的主体的cookie
 * @return 返回布尔值，true表示选择了
 */
boolean Auto_check_nickname(String cookie);
//存储用户选择的喜欢的nickname
/**
 * 
 * @param cookie 传入需要处理的cookie的主体
 * @param nickname 传入选择的nickname
 */
void Auto_storage_nickname(String cookie,String nickname);
//处理cookie的过期情况及时更改权限
/**
 * 
 */
void Auto_handle_timeout_cookie();
//处理用户异常登陆情况，找到异常用户并修改其状态
void Auto_handle_login_exception();
/**
 * 
 * @param username 需要检索的主体username
 * @return 返回一个字符串cookie数组，如果没有返回null
 */
String[] Auto_get_usercookie(String username);
/**
 * 
 * @param username 需要检索的主体的username
 * @return 返回用户访问的ip集合字符串，如果没有返回null
 */
String[] Auto_get_userip(String username);
}
